package com.fpx.order.plat.bussiness.service.customer.impl;

import java.util.List;
import java.util.Map;

import org.apache.commons.lang.StringUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;

import com.fpx.order.plat.bussiness.dao.customer.ICustomerShopDao;
import com.fpx.order.plat.bussiness.entity.CustomerShop;
import com.fpx.order.plat.bussiness.service.customer.ICustomerShopService;
import com.fpx.order.plat.web.utils.PageUtil;

/**
 * desc: 客户信息service实现类
 * @author xiangtao(xiangtao@4px.com)
 * @date 2015年11月24日 下午4:49:57
 * @version 1.0
 */
@Service("customerShopService")
public class CustomerShopServiceImpl implements ICustomerShopService {
	
	@Autowired
	private ICustomerShopDao customerShopDao;
	
	/**
	 * desc:根据平台号查询所有可用
	 * @author xiangtao(xiangtao@4px.com)
	 * @date 2015年11月24日 下午4:59:59
	 * @version 1.0
	 */
	@Override
	public List<CustomerShop> findByPlatCustomerShop(String platCode)
			throws Exception {
		
		return customerShopDao.findByPlatCustomerShop(platCode);
	}
	
	/**
	 * desc:
	 * @author xiangtao(xiangtao@4px.com)
	 * @date 2015年11月24日 下午5:04:48
	 * @version 1.0
	 */
	@Override
	public CustomerShop findByCustomerNo(String customerNo)
			throws Exception {
		// TODO Auto-generated method stub
		
		return null;
		
	}
	
	/**
	 * desc:
	 * @author xiangtao(xiangtao@4px.com)
	 * @date 2015年11月24日 下午5:04:48
	 * @version 1.0
	 */
	@Override
	public CustomerShop findCustomerInfo(String customerNo,
			String orderSource) throws Exception {
		// TODO Auto-generated method stub
		
		return null;
		
	}
	
	/**
	 * desc:
	 * @author xiangtao(xiangtao@4px.com)
	 * @date 2015年11月24日 下午5:04:48
	 * @version 1.0
	 */
	@Override
	public void updateAuthInfo(CustomerShop customer) throws Exception {
		int execRow = customerShopDao.updateAuthInfo(customer);
		if(execRow<=0){
			throw new Exception("更新失败");
		}
	}
	
	/**
	 * desc: 根据店铺CSID查询 店铺信息
	 * @author xiangtao(xiangtao@4px.com)
	 * @date 2015年11月26日 上午10:22:57
	 * @version 1.0
	 */
	@Override
	public CustomerShop findByCsidCustomer(String csid)
			throws Exception {
		
		return customerShopDao.findByCsidCustomer(csid);
		
	}

	@Override
	public List<CustomerShop> findByObjCustomer(CustomerShop customerShop)
			throws Exception {
		return customerShopDao.findByObjCustomer(customerShop);
	}

	@Override
	public Map<String, Object> findManuallyShopPage(Map<String, Object> map)
			throws Exception {
		if(map==null){
			throw new Exception("分页请求参数不能为空");
		}
		try{
			if(!StringUtils.isNumeric((String)map.get("page"))||
					!StringUtils.isNumeric((String)map.get("rows"))){
				throw new Exception("分页参数page,rows只能为数字");
			}
		}catch(Exception e){
			throw new Exception("分页请求参数不正确");
		}
		//当前页
		int page=Integer.parseInt((String)map.get("page"));
		//每页行数
		int rows=Integer.parseInt((String)map.get("rows"));
		//开始查询的行数
		int start_no=PageUtil.getStartNo(page, rows);
		map.put("start_no", String.valueOf(start_no));
		//结束查询的行数
		int end_no=PageUtil.getEndNo(rows, start_no);
		map.put("end_no", String.valueOf(end_no));
		//根据条件分页查询数据
		List<CustomerShop>originOrderLst=customerShopDao.findManuallyShopPage(map);
		//根据条件查询总行数
		int records=customerShopDao.findCountManuallyShopPage(map);
		map.put("rows", originOrderLst);//变成数据集了
		map.put("records", records);//总行数
		map.put("total",PageUtil.getPageSize(records, rows));//总页数
		return map;
	}

	@Override
	public List<String> selectPullCreateDate(Map<String, String> map)
			throws Exception {
		List<String> lstStr= customerShopDao.selectPullCreateDate(map);
		return lstStr;
	}
	
}
